#include "stm32f10x.h"                  // Device header


/*
RTC初始化函数
*/
void MyRTC_Init(void)
{
	// 开启时钟BKP和PWR的时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
	// 开启对BKP和RTC的访问
	PWR_BackupAccessCmd(ENABLE);			// 解除备份域的写保护，允许读写备份寄存器和配置RTC。
	
	// 配置RTC的时钟(时钟选择)
	RCC_LSEConfig(RCC_LSE_ON);
//	RCC_LSICmd(ENABLE);

	while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);	// 等待LSE开启

	RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
	RCC_RTCCLKCmd(ENABLE);									// 使能时钟
	
	// 等待内外同步, 等待上次写操作结束(防止意外)
	RTC_WaitForSynchro();
	RTC_WaitForLastTask();
	
	// 设置RTC的参数: 分频,CNT
	RTC_SetPrescaler(32768 - 1);
	RTC_WaitForLastTask();
	RTC_SetCounter(1672588795);
	RTC_WaitForLastTask();
}
